#ifndef IIMAGEPANEL_H
#define IIMAGEPANEL_H

#include <QWidget>
#include "RawImage.h"
#include "Shape.h"
#include "ewha.h"

class IImagePanel : public QWidget
{
	Q_OBJECT
public:
	IImagePanel(QWidget *parent) : QWidget(parent), m_eTool(eToolNone) {}
	virtual void setSelect(bool bSelect) {}
	virtual void reset() = 0;
	virtual void saveImage(bool bIsDiagnosis) = 0;

signals:
	void SignalWindowingValue(int iWWMax, int iWWMin, int iWidth, int iCenter);
	void SignalHistogramData(const QMap<int, int> &);
	void SignalProfileDraw(const QList<int> &);
	void SignalHistory(QAction *pUndo, QAction *pRedo);

public slots:
	virtual void SlotWindowing(int width, int center) = 0;
	virtual void SlotGamma(int gamma) = 0;
	virtual void SlotSetTool(ETool eTool) = 0;

protected:
	ETool m_eTool;
	QList<IImagePanel*> m_listChild;
};

#endif // IIMAGEPANEL_H
